/**
 * @Author ouxueting
 */
package com.chinaunicom.tour.sys.util;

import java.awt.*;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class CreatePwdUtil {

    private static char mapTable[] = { 'A', 'B', 'C', 'D', 'E','k','z','x', 'F', 'G', 'H', 'J','2', '3', '4', '6', 'K', 'M', 'N', 'P', 'Q', 'R','T', 'U', 'V', 'W', 'X', 'Y', 'Z', '7', '8', '9',
            'q','w','e','r','t','y','u','i','p', 'a','s','d','f','g','h','j','c','v','b','n','m'};
    public static String getPwd() {
        //取随机产生的码
        String pwd = "";
        //4代表4位验证码,如果要生成更多位的认证码,则加大数值
        for (int i = 0; i < 10; ++i) {
            pwd += mapTable[(int) (mapTable.length * Math.random())];
        }
       return pwd;

    }
    public static String md5(String pwd) throws NoSuchAlgorithmException {

        //md5加密
        //生成实现指定摘要算法的 MessageDigest 对象。
        MessageDigest md = MessageDigest.getInstance("MD5");
        //使用指定的字节数组更新摘要。
        md.update(pwd.getBytes());
        //通过执行诸如填充之类的最终操作完成哈希计算。
        byte b[] = md.digest();
        //生成具体的md5密码到buf数组
        int i;
        StringBuffer buf = new StringBuffer("");
        for (int offset = 0; offset < b.length; offset++) {
            i = b[offset];
            if (i < 0)
                i += 256;
            if (i < 16)
                buf.append("0");
            buf.append(Integer.toHexString(i));
        }
        return buf.toString();// 32位的加密

    }

}
